package fun.chutianshu;

public class Main {

    public static void main(String[] args) {
	// write your code here
        Cat c1 = new Cat("大白",5);
        Cat c2 = new Cat("大白",5);
        System.out.println(c1==c2);

        //引用类型中，存储的是它所指向的对象的堆地址，赋值时，传递的都是地址：String 、 所有的类对象、接口
        //值类型，赋值时，直接进行的是 copy 赋值 ：所有的基础类型  int / long /short /float /double /char/boolean/bit
        // java 中，所有值类型的关键字都是小写；而所有引用类型都是大写
        Cat c3 = c2;
        c3.setName("奶牛");
        System.out.println(c2.getName());

        //String 属于最特殊的一个引用类型，因为其资源较为珍贵，它有一个缓存池，会把用过的缓存起来
        String s1 = "大白";
        String s2 = s1;
        s2 = "小花";
        System.out.println(s1);


    }
}

class Cat{
    private String name;
    public String getName(){
        return this.name;
    }
    public void setName(String name){
        this.name=name;
    }

    private int age;
    public int getAge(){
        return this.age;
    }
    public void setAge(int age){
        this.age=age;
    }

    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public Cat(){}
}